package com.hyhy.hycloud.uaa.model;

import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.List;

/**
 * 资源实体
 *
 * @author Xuegui Yuan
 * @date 2018-09-25
 */
@Data
@Document
public class Resource implements Tree<Resource, String> {
    /**
     * 权限ID
     */
    @Id
    private String id;

    /**
     * 资源父级ID
     */
//    @JsonIgnore
    private String pid;

    /**
     * 资源名称
     */
    private String name;

    /**
     * 资源代码
     */
    private String code;

    /**
     * 资源类型
     */
    @JsonIgnore
    private String type;

    /**
     * 层级
     */
    @JsonIgnore
    private int level;

    /**
     * 排序
     */
    @JsonIgnore
    private int sort;

    /**
     * 路径
     */
    private String path;

    /**
     * APP ID
     */
    @JsonIgnore
    private String appId;

    private List<Resource> children;

    @Override
    public int compareTo(Resource o) {
        return this.sort > o.getSort() ? 1 : -1;
    }
}
